#include "DlistElem_t.h"

template<class T>
DlistElem_t<T>::DlistElem_t(T* data)
	: m_type(ELEM)
	, m_data(data)
	, m_next(NULL)
	, m_prev(NULL)
{
	// TODO: implementation
}

template<class T>
DlistElem_t<T>::DlistElem_t(ElemType type)
	: m_type(type)
	, m_data(NULL)
	, m_next(NULL)
	, m_prev(NULL)
{
	// TODO: implementation
}


template<class T>
DlistElem_t<T>::~DlistElem_t()
{
}

//template<class T>
//DlistElem_t<T>::ElemType DlistElem_t<T>::type() const
//{
//	return m_type;
//}

template<class T>
T* DlistElem_t<T>::get() const
{
	return m_data;
}

template<class T>
DlistElem_t<T>* DlistElem_t<T>::next() const
{
	return m_next;
}

template<class T>
void DlistElem_t<T>::setNext(DlistElem_t* const elem)
{
	m_next = elem;
}

template<class T>
DlistElem_t<T>* DlistElem_t<T>::prev() const
{
	return m_prev;
}

template<class T>
void DlistElem_t<T>::setPrev(DlistElem_t* const elem)
{
	m_prev = elem;
}

template<class T>
DlistElem_t<T>::DlistElem_t(const DlistElem_t& other)
{
	// TODO: implementation
}

template<class T>
DlistElem_t<T>& DlistElem_t<T>::operator=(const DlistElem_t& other)
{
	// TODO: implementation

	return *this;
}